一、vue 自定义指令
说明
- 作用:dom处理逻辑的封装
- 注意:使用时同样需要添加v-前缀
- 分类:全局指令与局部指令
定义
- 全局指令
Vue.directive(name, config)
任何 Vue 实例所关联的视图中都可以使用
- 局部指令
new Vue({ directives: { name1: config, name2: config } })
只能在当前实例所关联的视图中使用
配置项
- bind
只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
- inserted
被绑定元素插入父节点时调用 (父节点存在即可调用,不必存在于 document 中)。
- update
元素或值更新时调用,值更新时需要调用 v-test="val"
,val 是模型变量。
- unbind
只调用一次,指令与元素解绑时调用。
函数参数
- 定义指令时大部分是在bind与update时做操作
- 可以考虑使用简写方式,传递一个函数,在 bind 与 update 时调用
- 比如:Vue.directive(name, fn)
自定义指令简写
文字高亮
1 | <p v-html='content' v-hint:abc='keyword'></p> |
1 | Vue.directive('hint',function(node, obj) { |
示例1
应用场景:页面一但刷新,输入框会自动获取焦点
1 | <div id="app"> |
1 | // 创建一个全局自定义指令 |
示例2
1 | <div id="app"> |
1 | Vue.directive('hint', function(el, binding) { |